// src/utils/config.js
let globalConfig = {};
let configListeners = [];

export const loadConfig = async () => {
  try {
    // 添加时间戳防止缓存
    const baseUrl = import.meta.env.BASE_URL;
    const configUrl = `${window.location.origin}${baseUrl}app-config.json?t=${Date.now()}`;
    const response = await fetch(configUrl);
    const config = await response.json();
    Object.assign(globalConfig, config);
    console.log('已使用如下配置:', globalConfig);
    return globalConfig;
  } catch (error) {
    console.error('无法加载配置，将使用默认配置', error);
    // 设置默认值
    globalConfig = {
      API_BASE_URL: 'http://localhost:9001',
      DEFAULT_USER_LOGO: 'http://localhost:9001/files/download/default-user-logo.png',
      AUTH_ENABLED: false,
      MAX_ITEMS: 25
    };
    return globalConfig;
  }
};

export const getConfig = (key) => {
  return globalConfig[key];
};

export const getFullConfig = () => {
  return {...globalConfig}; // 返回副本
};

// Vue 3 插件安装方式
export const ConfigPlugin = {
  install(app) {
    // Vue 3 使用 provide/inject 或 app.config.globalProperties
    app.config.globalProperties.$config = globalConfig;
    app.config.globalProperties.$getConfig = getConfig;
    
    // 可选：使用 provide 以便在组合式 API 中使用
    app.provide('config', globalConfig);
  }
};